/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Commons;

import java.io.Serializable;

/**Questa classe implementa un oggetto scambiato durante la comunicazione
 * tra il WorkerDiscovery e il proprio proxy.
 * Al suo interno sono contenuti tre attributi
 * delle classi String, WorkerDescriptor e di tipo intero
 * utilizzati per invocare da parte del Worker
 * i metodi esposti dal WorkerDiscovery
 *
 * @author team5
 */
public class ComandoWorker implements Serializable{

    //Attributes
    private String comando;
    private WorkerDescriptor wd;
    private int index;

    //Operations

    /** Metodo costruttore della classe
     *
     * @param comando stringa relativa al metodo da invocare sull'oggetto WorkerDiscovery
     * @param wd oggetto WorkerDescriptor utilizzato nei metodi del WorkerDiscovery
     * @param index parametro intero utilizzato nel metodo updateWorker() del WorkerDiscovery
     */
    public ComandoWorker(String comando, WorkerDescriptor wd, int index) {
        this.comando = comando;
        this.wd = wd;
        this.index = index;
    }

    /**Questo metodo restituisce la stringa di comando
     * relativa al metodo da invocare sul WorkerDiscovery
     *
     * @return stringa di comando
     */
    public String getComando() {
        return comando;
    }


    /**Questo metodo restituisce il valore intero da utilizzare
     * come primo parametro nell'invocazione del metodo <a href="../Discovery/Discovery.html#updateWorker(int, Commons.WorkerDescriptor")>updateWorker(int, WorkerDescriptor)</a>
     * dell'oggetto WorkerDiscovery
     *
     * @return parametro intero da utilizzare
     */
    public int getIndex() {
        return index;
    }

    /**Questo metodo restituisce l'oggetto WorkerDescriptor da utilizzare come parametro
     * nell'invocazione dei metodi esposti dell'interfaccia <a href="../Discovery/Discovery.html">Discovery</a>
     *
     * @return il workerdescriptor da usare nell'invocazione dei metodi
     */
    public WorkerDescriptor getWd() {
        return wd;
    }


}
